bitkeeper revision 1.1196.1.1 (4210949fd4uhxJmk2kIDASV8WbY-4w)
authormafetter@fleming.research <mafetter@fleming.research>
Mon, 14 Feb 2005 12:07:59 +0000 (12:07 +0000)
committermafetter@fleming.research <mafetter@fleming.research>
Mon, 14 Feb 2005 12:07:59 +0000 (12:07 +0000)
Minor shadow mode cleanups.

Signed-off-by: michael.fetterman@cl.cam.ac.uk
xen/arch/x86/shadow.c
xen/arch/x86/traps.c

index 1fc3a254009fd260765e4f050c666ac8e8f9e63c..d91804c75253ef2ef018a0c58b13e25c954293fb 100644 (file)
@@ -512,8 +512,8 @@ static void shadow_map_l1_into_current_l2(unsigned long va)
 { 
     struct exec_domain *ed = current;
     struct domain *d = ed->domain;
-    unsigned long    *gpl1e, *spl1e, gl2e, sl2e, gl1pfn, sl1pfn=0, sl1ss;
-    struct pfn_info  *sl1pfn_info;
+    unsigned long    *gpl1e, *spl1e, gl2e, sl2e, gl1pfn, sl1mfn, sl1ss;
+    struct pfn_info  *sl1mfn_info;
     int               i;
 
     __guest_get_l2e(ed, va, &gl2e);
@@ -526,17 +526,17 @@ static void shadow_map_l1_into_current_l2(unsigned long va)
         /* This L1 is NOT already shadowed so we need to shadow it. */
         SH_VVLOG("4a: l1 not shadowed ( %p )", sl1pfn);
 
-        sl1pfn_info = alloc_shadow_page(d);
-        sl1pfn_info->u.inuse.type_info = PGT_l1_page_table;
+        sl1mfn_info = alloc_shadow_page(d);
+        sl1mfn_info->u.inuse.type_info = PGT_l1_page_table;
    
-        sl1pfn = sl1pfn_info - frame_table;
+        sl1mfn = sl1mfn_info - frame_table;
 
         perfc_incrc(shadow_l1_table_count);
         perfc_incr(shadow_l1_pages);
 
-        set_shadow_status(d, gl1pfn, PSH_shadowed | sl1pfn);
+        set_shadow_status(d, gl1pfn, PSH_shadowed | sl1mfn);
 
-        l2pde_general(d, &gl2e, &sl2e, sl1pfn);
+        l2pde_general(d, &gl2e, &sl2e, sl1mfn);
 
         __guest_set_l2e(ed, va, gl2e);
         __shadow_set_l2e(ed, va, sl2e);
@@ -553,10 +553,10 @@ static void shadow_map_l1_into_current_l2(unsigned long va)
     else
     {
         /* This L1 is shadowed already, but the L2 entry is missing. */
-        SH_VVLOG("4b: was shadowed, l2 missing ( %p )", sl1pfn);
+        SH_VVLOG("4b: was shadowed, l2 missing ( %p )", sl1ss);
 
-        sl1pfn = sl1ss & PSH_pfn_mask;
-        l2pde_general(d, &gl2e, &sl2e, sl1pfn);
+        sl1mfn = sl1ss & PSH_pfn_mask;
+        l2pde_general(d, &gl2e, &sl2e, sl1mfn);
         __guest_set_l2e(ed, va, gl2e);
         __shadow_set_l2e(ed, va, sl2e);
     }              
index cd587194b78791551bd72a22ab94f46e77ddb81e..ab0ef0960f9636b8744b93eaa0b654b59e6497ee 100644 (file)
@@ -286,7 +286,7 @@ asmlinkage int do_page_fault(struct xen_regs *regs)
              ((regs->error_code & 3) == 3) && /* write-protection fault */
              ptwr_do_page_fault(addr) )
         {
-            if ( unlikely(d->arch.shadow_mode) )
+            if ( unlikely(shadow_mode(d)) )
                 (void)shadow_fault(addr, regs->error_code);
             UNLOCK_BIGLOCK(d);
             return EXCRET_fault_fixed;
@@ -294,7 +294,7 @@ asmlinkage int do_page_fault(struct xen_regs *regs)
         UNLOCK_BIGLOCK(d);
     }
 
-    if ( unlikely(d->arch.shadow_mode) && 
+    if ( unlikely(shadow_mode(d)) && 
          (addr < PAGE_OFFSET) && shadow_fault(addr, regs->error_code) )
         return EXCRET_fault_fixed;
 
@@ -330,7 +330,7 @@ asmlinkage int do_page_fault(struct xen_regs *regs)
     if ( likely((fixup = search_exception_table(regs->eip)) != 0) )
     {
         perfc_incrc(copy_user_faults);
-        if ( !d->arch.shadow_mode )
+        if ( !shadow_mode(d) )
             DPRINTK("Page fault: %p -> %p\n", regs->eip, fixup);
         regs->eip = fixup;
         return 0;